1 # Copyright (c) 2003 David Kocher. All rights reserved.
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # Bug fixes, suggestions and comments should be sent to:
15 # dkocher@cyberduck.ch
19 base_language
="en.lproj"
23 echo "Show localization status using polyglot"
24 echo " Usage: i18n.sh [-l <language>] --status"
25 echo "Initialize new localization project"
26 echo " Usage: i18n.sh [-l <language>] --init"
27 echo "Update localization(s), use [--force] to ignore previous custom layout in localized NIBs"
28 echo " Usage: i18n.sh [-l <language>] [-n <nib>] [--force] --update"
30 echo "<language> must be ja.lproj, fr.lproj, es.lproj, ..."
31 echo "<nib> must be Preferences.nib, Main.nib, ..."
37 for nibfile
in `ls $base_language | grep .nib | grep -v ~.nib | grep -v .bak`; do
38 echo "Copying $nibfile"
39 nib
=`basename $nibfile .nib`
40 cp -R $base_language/$nibfile $language/$nibfile
41 rm -rf $language/$nibfile/.svn
42 nibtool
--localizable-strings $language/$nibfile > $language/$nib.
strings
44 cp $base_language/Localizable.
strings $language/
45 cp $base_language/InfoPlist.
strings $language/
49 nib
=`basename $nibfile .nib`
50 if [ "$language" = "all" ] ; then
52 for lproj
in `ls . | grep lproj`; do
53 if [ $lproj != $base_language ]; then
54 echo "*** Opening $lproj/$nib.strings"
55 /usr
/bin
/open
$lproj/$nib.
strings
61 echo "*** Opening $language/$nib.strings"
62 /usr
/bin
/open
$language/$nib.
strings
68 if [ "$language" = "all" ] ; then
70 for lproj
in `ls . | grep lproj`; do
72 if [ $language != $base_language ]; then
73 echo "*** Status of $language Localization...";
74 /usr
/local
/bin
/polyglot
-b `basename $base_language .lproj` -l `basename $language .lproj` .
80 echo "*** Status of $language Localization...";
81 /usr
/local
/bin
/polyglot
-b `basename $base_language .lproj` -l `basename $language .lproj` .
87 #Changes to the .strings has precedence over the NIBs
89 #Update the .strings with new values from NIBs
93 updateNibFromStrings
() {
94 if (`test -f $language/$nib.strings`); then
96 if (`test -d $language/$nibfile`); then
98 rm -rf $language/$nibfile.bak
99 mv $language/$nibfile $language/$nibfile.bak
101 if($force == true
); then
104 echo "*** Updating $nib... (force) in $language..."
105 nibtool
--write $language/$nibfile \
106 --dictionary $language/$nib.
strings $base_language/$nibfile
111 echo "*** Updating $nib... (incremental) in $language..."
112 nibtool
--write $language/$nibfile \
113 --incremental $language/$nibfile.bak \
114 --dictionary $language/$nib.
strings $base_language/$nibfile
118 if (`test -d $language/$nibfile.bak`); then
119 cp -R $language/$nibfile.bak
/.svn
$language/$nibfile/.svn
120 rm -rf $language/$nibfile.bak
128 udpateStringsFromNib
() {
129 if (`test -d $language/$nibfile`); then
131 echo "*** Updating $nib.strings in $language..."
132 nibtool
--previous $base_language/$nibfile \
133 --incremental $language/$nibfile \
134 --localizable-strings $base_language/$nibfile > $language/$nib.
strings
140 if [ "$language" = "all" ] ; then
142 echo "*** Updating all localizations...";
143 for lproj
in `ls . | grep lproj`; do
145 if [ $language != $base_language ]; then
147 echo "*** Updating $language Localization...";
148 if [ "$nibfile" = "all" ] ; then
149 echo "*** Updating all NIBs...";
150 for nibfile
in `ls $language | grep .nib | grep -v ~.nib | grep -v .bak`; do
151 nib
=`basename $nibfile .nib`
152 nibtool
--localizable-strings $base_language/$nibfile > $base_language/$nib.
strings
156 if [ "$nibfile" != "all" ] ; then
157 nib
=`basename $nibfile .nib`
158 nibtool
--localizable-strings $base_language/$nibfile > $base_language/$nib.
strings
167 echo "*** Updating $language Localization...";
168 if [ "$nibfile" = "all" ] ; then
169 echo "*** Updating all NIBs...";
170 for nibfile
in `ls $language | grep .nib | grep -v ~.nib | grep -v .bak`; do
171 nib
=`basename $nibfile .nib`;
172 nibtool
--localizable-strings $base_language/$nibfile > $base_language/$nib.
strings
176 if [ "$nibfile" != "all" ] ; then
178 nib
=`basename $nibfile .nib`;
179 nibtool
--localizable-strings $base_language/$nibfile > $base_language/$nib.
strings
191 while [ "$1" != "" ] # When there are arguments...
196 echo "Using Language:$language";
202 echo "Using Nib:$nibfile";
212 echo "*** DONE. ***";
215 echo "Init new localization...";
217 echo "*** DONE. ***";
221 echo "Status of localization...";
223 echo "*** DONE. ***";
227 echo "Updating localization...";
229 echo "*** DONE. ***";
233 echo "Opening localization .strings files...";
235 echo "*** DONE. ***";
239 echo "Option [$1] not one of [--status, --update, --open, --init]"; # Error (!)
241 ;; # Abort Script Now